草庐IT

Ruby File 类和方法

全部标签

c# - 虚方法的重载解析

考虑代码publicclassBase{publicvirtualintAdd(inta,intb){returna+b;}}publicclassDerived:Base{publicoverrideintAdd(inta,intb){returna+b;}publicintAdd(floata,floatb){return(Int32)(a+b);}}如果我创建Derived类的实例并使用int类型的参数调用Add为什么它调用带有float参数的Add方法Derivedobj=newDerived()obj.Add(3,5)//whythisiscallingAdd(floata,

c# - 在 C# 中查看一个字符串是否包含另一个字符串的最快、不区分大小写的方法是什么?

编辑2:确认我的性能问题是由于对StringExtensions类的静态函数调用造成的。删除后,IndexOf方法确实是完成此操作的最快方法。在C#中查看一个字符串是否包含另一个字符串的最快、不区分大小写的方法是什么?我在Caseinsensitive'Contains(string)'看到该帖子的公认解决方案但我已经做了一些初步的基准测试,似乎使用该方法会导致在找不到测试字符串时对较大字符串(>100个字符)的调用速度降低几个数量级。以下是我知道的方法:索引:publicstaticboolContains(thisstringsource,stringtoCheck,StringC

c# - 如何访问泛型类型的静态方法

publicclassBusinessObjectswhereO:BusinessObject{voidSomeMethod(){vars=O.MyStaticMethod();//是否有正确的面向对象方法来完成此操作,或者我是否需要诉诸反射?编辑:对于这个问题,我试图过分简化这个问题,但遗漏了一个重要的观点。MyStaticMethod使用反射并需要派生类型来返回正确的结果。然而,我刚刚意识到我的设计中的另一个缺陷,即我不能拥有静态虚拟方法,我认为这就是我所需要的。看来我需要找到另一种方法来解决这个问题。 最佳答案 您不能通过泛型

c# - 除了泛型类之外,还有其他方法可以在不装箱的情况下调用结构的接口(interface)方法吗?

查看代码片段publicinterfaceI0{voidf0();}publicstructS0:I0{voidI0.f0(){}}publicclassAwhereE:I0{publicEe;publicvoidcall(){e.f0();}}这里是call()的IL代码.maxstack8L_0000:ldarg.0L_0001:ldflda!0Temp.A`1::eL_0006:constrained!EL_000c:callvirtinstancevoidTemp.I0::f0()L_0011:ret参见constrained的引用资料Theconstrainedprefixc

c# - 通过扩展方法实现多态性?

我有一个类库,其中包含一些基类和派生自它们的其他类。在这个类库中,我利用多态性来做我想做的事。现在在一个消费应用程序中,我想根据子类的运行时类型更改某些代码的行为。所以假设如下:publicclassBase{}publicclassChild1:Base{}publicclassChild2:Base{}现在在消费应用程序中我想做如下事情(注意以下所有类都在消费应用程序中,不能在类库中引用):publicinterfaceIMyInterface1{}publicinterfaceIMyInterface2{}publicstaticclassExtensions{publicsta

c# - 为什么未等待的异步方法不抛出异常?

我认为异步方法在到达等待之前应该像普通方法一样表现。为什么这不会抛出异常?有没有办法在不等待的情况下抛出异常?usingSystem;usingSystem.Threading.Tasks;publicclassTest{publicstaticvoidMain(){vart=newTest();t.Helper();}publicasyncTaskHelper(){thrownewException();}} 最佳答案 async方法中抛出的异常按照设计存储在返回的任务中。要获得异常,您可以:await任务:awaitt.Help

c# - 通过 bool 函数排序列表的更短方法

我有一个需要以特定方式排序的列表。我目前是这样解决的:varfiles=GetFiles().OrderByDescending(x=>x.Filename.StartsWith("ProjectDescription_")).ThenByDescending(x=>x.Filename.StartsWith("Budget_")).ThenByDescending(x=>x.Filename.StartsWith("CV_")).ToArray();这些文件将被合并到一个PDF文件中,这里的重点是某些文件应该放在开头,其余的放在最后。我想知道是否有更好的方法来编写这个“模式”,因为它

c# - 在 C# 中生成 KML 文件的最佳方法是什么?

使用C#生成KML文件的最佳方法是什么?是否有我可以使用的类库?我一直在寻找并努力寻找任何有趣的东西。libkml没有C#实现或包装器。任何帮助都会很棒。 最佳答案 SharpKML-librarybasedonGoogle'sC++implementationoflibkml 关于c#-在C#中生成KML文件的最佳方法是什么?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/24

c# - 是否可以重载窗体的 ShowDialog 方法并返回不同的结果?

编辑:这个方法实际上很有效,我问过它然后找到了解决方案。我在重载的ShowDialog()方法中添加了正确的调用(它不完全是重载,甚至不是覆盖,但它的工作原理是一样的。我的新问题是底部的问题。我有一个表单,您可以在其中单击三个按钮之一。我为返回的结果定义了一个枚举。我要调用电话:MyFormResultsres=MyForm.ShowDialog();我可以用这段代码添加一个新的ShowDialog方法:publicnewMyFormResultsShowDialog(){//Showmodaldialogbase.ShowDialog();//ThisworksandsomehowI

c# - 调用泛型类的方法

这是上下文:我尝试编写一个映射器以将我的DomainModel对象动态转换为ViewModel对象。我遇到的问题是,当我尝试通过反射调用泛型类的方法时出现此错误:System.InvalidOperationException:无法对ContainsGenericParameters为真的类型或方法执行后期绑定(bind)操作。谁能帮我找出问题出在哪里?不胜感激这是代码(我试图简化它):publicclassMapClass{publicstringTest(){returntest}publicvoidMapClassReflection(SourceTypesource,refDe